home *** CD-ROM | disk | FTP | other *** search
/ LOGIC Apps / Logic-APPLE_II_APPS.iso / pc / LOGIC Apple II 5.25" Library - DOS Part 2 / DOS036.dsk / APPLESOFT SHAPE MAKER.bas next >
BASIC Source File  |  2012-02-16  |  9KB  |  235 lines

  1. 0  LOMEM: 24576
  2. 1  REM    COPYRIGHT R.J. KEATING,    4 APRIL 1980 
  3. 2 ML =  PEEK(115):MH =  PEEK(116)
  4. 3  REM  RO AND CO MUST BE EVEN   NUMBERS I.E. 10,12 NOT 7,9
  5. 4  REM    YOU MUST ADJUST THE       FOLLOWING THREE LINES     WHEN YOU ADJUST THE PROGRAM
  6. 5 SH = 9: REM  # SHAPES
  7. 6 RO = 16: REM  ROW #
  8. 7 CO = 14: REM   COLUMN  #
  9. 9 I = RO *CO
  10. 10  DIM A%(SH,I),N%(SH +1,(I/2 +4 +2 *RO))
  11. 11 N = 1:X = 0:Y = 1
  12. 12  HOME : PRINT "SHAPE TABLE PROGRAM": PRINT : PRINT "BY R.J. KEATING."
  13. 13  PRINT : PRINT : PRINT "BY ENTERING DATA AT THE END OF THIS     PROGRAM IN A MATRIX OF '1'S AND '0'S    AND SPECIFYING THE NUMBER OF ROWS AND   COLUMNS YOU ARE USING A SHAPE TABLE     WILL BE GENERATED."
  14. 14  PRINT "I HAVE USED A 16 X 14 MATRIX FOR THE    EXAMPLES IN THE PROGRAM.  THESE ARE SET IN LINES 6 AND 7.  "
  15. 15  PRINT : PRINT "HIT THE SPACE BAR TO CONTINUE PROGRAM   ANY OTHER KEY WILL END IT."
  16. 16  WAIT  -16384,128: GET A$: IF A$ < >" "  THEN  END 
  17. 17  HOME : PRINT "THE PROGRAM TAKES ABOUT 2 MINUTES TO RUN": PRINT : PRINT : PRINT 
  18. 18  PRINT "THIS PROGRAM WAS DESIGNED ON A 48K      MACHINE AND MAY NOT WORK ON A SMALLER   MACHINE.": PRINT : PRINT : PRINT 
  19. 19  FOR N = 1 TO SH
  20. 20  FOR J = 1 TO RO/2
  21. 25  FOR I = 1 TO CO
  22. 30  READ A%(N,(J -1) *CO *2 +I)
  23. 35  NEXT I
  24. 40  FOR I = 1 TO CO
  25. 45  READ A%(N,CO *2 *J -(I -1))
  26. 50  NEXT I
  27. 55  NEXT J
  28. 100  FOR J = 1 TO RO/2: FOR I = 1 TO CO: PRINT A%(N,(J -1) *2 *CO +I);: NEXT I: PRINT : FOR I = 1 TO CO: PRINT A%(N,CO *2 *J -(I -1));: NEXT I: PRINT : NEXT J
  29. 120  NEXT N
  30. 180  FOR N = 1 TO SH
  31. 200 X = 1:Y = 1
  32. 210  FOR I = 1 TO RO/2
  33. 230  FOR J = 1 TO CO/2
  34. 240 A$ =  STR$(A%(N,X))
  35. 250 X = X +1
  36. 260 A$ =  STR$(A%(N,X)) +A$
  37. 270 X = X +1
  38. 280  GOSUB 600
  39. 290  NEXT J
  40. 300 N%(N,Y) = 26:Y = Y +1
  41. 310  FOR J = 1 TO CO/2
  42. 320 A$ =  STR$(A%(N,X))
  43. 330 X = X +1
  44. 340 A$ =  STR$(A%(N,X)) +A$
  45. 350 X = X +1
  46. 360  GOSUB 700
  47. 370  NEXT J
  48. 380 N%(N,Y) = 10:Y = Y +1
  49. 390  NEXT I
  50. 395  NEXT N
  51. 396 N%(N,Y) = 00:Y = Y +1
  52. 399 N = 1:LE = SH *2 +9 +SH *Y:LE = MH *256 +ML -LE: POKE 116, INT(LE/256): POKE 115,LE - INT(LE/256) *256:ST = LE
  53. 400  POKE ST,SH: POKE ST +1,0
  54. 401  POKE 232,ST - INT(ST/256) *256
  55. 402  POKE 233, INT(ST/256)
  56. 405  FOR I = 1 TO SH:NU = 2 *SH +2 +(I -1) *Y: POKE ST +2 +2 *(I -1),NU - INT(NU/256) *256
  57. 410  POKE ST +3 +2 *(I -1), INT(NU/256)
  58. 415  NEXT 
  59. 420  FOR I = 1 TO SH:NU = 2 *SH +2 +(I -1) *Y -1 +ST
  60. 422  FOR J = 1 TO Y
  61. 425  POKE NU +J,N%(I,J)
  62. 430  NEXT : NEXT 
  63. 435  HGR2 : SCALE= 1: ROT= 0: HCOLOR= 3
  64. 440  FOR J = 1 TO 7
  65. 441  HCOLOR= J:SV = 1
  66. 442 SP = SH:SA = 1: IF SH >9  THEN SA = SP -9
  67. 450  FOR I = SA TO SP
  68. 455  DRAW I AT 25 *SV,25 *J
  69. 456 SV = SV +1
  70. 460  NEXT : NEXT 
  71. 499  WAIT  -16384,128: GET A$
  72. 500  TEXT : HOME : PRINT "YOUR SHAPE TABLE IS NOW READY FOR": PRINT "USE.  YOU SHOULD START ANY PROGRAM      USING THIS TABLE WITH THE FOLLOWING     LINES."
  73. 510  PRINT : PRINT "1  HIMEM: "; PEEK(116) *256 + PEEK(115)
  74. 520  PRINT : PRINT "2  POKE 232, ";ST - INT(ST/256) *256
  75. 530  PRINT : PRINT "3  POKE 233, "; INT(ST/256)
  76. 540  PRINT : PRINT : PRINT "YOU CAN ALSO SAVE YOUR TABLE BY TYPING": PRINT 
  77. 550  PRINT "BSAVE 'NAME' , A"; PEEK(116) *256 + PEEK(115) -1;" , L";SH *2 +9 +SH *Y
  78. 560  PRINT : PRINT "AND YOU COULD BLOAD IT INTO THE COMPUTERBEFORE YOU START"
  79. 599  END 
  80. 600  IF A$ = "00"  THEN N%(N,Y) = 9
  81. 610  IF A$ = "10"  THEN N%(N,Y) = 41
  82. 620  IF A$ = "01"  THEN N%(N,Y) = 13
  83. 630  IF A$ = "11"  THEN N%(N,Y) = 45
  84. 640 Y = Y +1
  85. 650  RETURN 
  86. 700  IF A$ = "00"  THEN N%(N,Y) = 27
  87. 710  IF A$ = "10"  THEN N%(N,Y) = 59
  88. 720  IF A$ = "01"  THEN N%(N,Y) = 31
  89. 730  IF A$ = "11"  THEN N%(N,Y) = 63
  90. 740 Y = Y +1
  91. 750  RETURN 
  92. 1000  DATA  0,0,0,0,0,0,0,0,0,0,0,0,0,0
  93. 1010  DATA  0,0,1,0,0,0,0,0,0,0,0,0,0,0
  94. 1020  DATA  0,0,1,0,0,0,0,0,0,0,0,0,0,0
  95. 1040  DATA  0,1,1,1,1,1,1,1,1,0,0,0,0,0
  96. 1050  DATA  0,1,1,1,1,1,1,1,1,1,1,1,1,1
  97. 1060  DATA  0,1,1,1,1,1,1,1,1,0,0,0,0,0
  98. 1070  DATA  0,0,0,0,1,1,1,1,1,1,1,0,0,0 
  99. 1080  DATA  0,1,1,1,1,1,1,1,1,1,1,1,0,0 
  100. 1090  DATA  1,1,1,1,1,1,1,1,1,1,1,1,1,0 
  101. 1100  DATA  1,1,1,1,1,1,1,1,1,1,1,1,1,1
  102. 1110  DATA  1,1,0,1,0,1,0,1,0,1,0,0,1,0
  103. 1120  DATA  0,1,0,0,1,0,1,0,1,0,1,1,0,0
  104. 1130  DATA  0,0,1,0,0,1,0,1,0,1,1,0,0,0
  105. 1140  DATA  0,0,0,1,1,1,1,1,1,1,0,0,0,0
  106. 1150  DATA  0,0,0,0,0,0,0,0,0,0,0,0,0,0 
  107. 1160  DATA  0,0,0,0,0,0,0,0,0,0,0,0,0,0 
  108. 1200  DATA  0,0,0,0,0,0,0,0,0,0,0,0,0,0
  109. 1220  DATA  0,0,0,0,0,0,0,0,0,0,0,0,0,0 
  110. 1230  DATA  0,0,0,0,0,0,0,0,0,0,0,0,1,0 
  111. 1240  DATA  0,0,0,0,1,1,0,0,0,0,0,1,0,0
  112. 1250  DATA  0,0,0,0,0,1,1,0,0,0,1,0,0,0
  113. 1260  DATA  0,0,0,0,0,0,1,1,0,1,0,0,0,0 
  114. 1265  DATA  0,0,0,0,0,0,0,1,1,0,0,0,0,0
  115. 1270  DATA  0,0,0,0,1,1,1,0,1,1,0,0,0,0
  116. 1280  DATA  0,0,0,0,1,1,1,1,0,1,1,0,0,0 
  117. 1290  DATA  0,0,0,1,1,1,1,1,1,0,0,0,0,0
  118. 1300  DATA  0,0,1,1,1,0,0,1,1,0,0,0,0,0
  119. 1310  DATA  0,1,1,1,0,0,1,0,0,1,0,0,0,0
  120. 1320  DATA  1,1,1,0,0,0,0,1,1,0,0,0,0,0
  121. 1330  DATA  0,0,0,0,0,0,0,0,0,0,0,0,0,0
  122. 1340  DATA  0,0,0,0,0,0,0,0,0,0,0,0,0,0 
  123. 1350  DATA  0,0,0,0,0,0,0,0,0,0,0,0,0,0  
  124. 1410  DATA  0,0,0,0,0,0,1,1,1,0,0,0,0,0
  125. 1420  DATA  0,0,0,0,0,0,1,1,1,0,0,0,0,0 
  126. 1430  DATA  0,0,0,0,0,0,1,1,1,0,0,0,0,0
  127. 1440  DATA  0,0,0,0,0,0,0,1,0,0,0,0,0,1
  128. 1450  DATA  0,0,0,0,1,1,1,1,1,1,0,0,1,0
  129. 1460  DATA  0,0,0,1,1,1,1,1,1,1,1,1,0,0
  130. 1470  DATA  0,0,0,1,0,0,1,1,1,1,1,0,0,0 
  131. 1480  DATA  0,0,0,1,0,0,1,1,1,1,0,0,0,0 
  132. 1490  DATA  0,0,0,0,1,0,1,1,1,1,0,0,0,0 
  133. 1500  DATA  0,0,0,0,0,1,1,1,1,1,0,0,0,0 
  134. 1510  DATA  0,0,0,0,0,0,1,1,1,1,0,0,0,0 
  135. 1520  DATA  0,0,0,0,0,1,1,1,1,1,0,0,0,0 
  136. 1530  DATA  0,0,0,0,0,1,1,0,1,1,0,0,0,0
  137. 1540  DATA  0,0,0,0,1,1,0,0,1,1,0,0,0,0
  138. 1550  DATA  0,0,0,1,1,0,0,0,0,1,1,0,0,0
  139. 1560  DATA  0,0,0,1,1,0,0,0,0,1,1,0,0,0 
  140. 1610  DATA  0,0,0,0,0,0,0,0,0,0,0,0,0,0
  141. 1620  DATA  0,0,0,1,1,1,1,1,1,1,1,0,0,0
  142. 1630  DATA  0,0,1,1,1,1,1,1,1,1,1,1,0,0 
  143. 1640  DATA  0,0,1,1,1,1,1,1,1,1,1,1,0,0
  144. 1650  DATA  0,0,0,1,1,1,1,1,1,1,1,0,0,0 
  145. 1660  DATA  0,0,0,0,0,1,1,1,1,0,0,0,0,0 
  146. 1670  DATA  0,0,0,0,0,1,1,1,1,0,0,0,0,0
  147. 1680  DATA  0,0,0,0,0,1,1,1,1,0,0,0,0,0 
  148. 1690  DATA  0,0,0,0,0,1,1,1,1,0,0,0,0,0 
  149. 1700  DATA  0,0,0,0,1,1,1,1,1,1,0,0,0,0
  150. 1710  DATA  0,0,0,0,1,1,1,1,1,1,0,0,0,0 
  151. 1720  DATA  0,0,1,1,1,1,1,1,1,1,1,1,0,0 
  152. 1730  DATA  0,1,1,1,1,1,1,1,1,1,1,1,1,0 
  153. 1740  DATA  0,0,0,0,0,0,0,0,0,0,0,0,0,0
  154. 1750  DATA  0,0,0,0,0,0,0,0,0,0,0,0,0,0 
  155. 1760  DATA  0,0,0,0,0,0,0,0,0,0,0,0,0,0 
  156. 1810  DATA  0,0,0,0,0,0,0,0,0,0,0,0,0,0
  157. 1820  DATA  0,0,0,0,0,0,0,0,0,0,0,0,0,0 
  158. 1830  DATA  0,0,0,0,0,0,0,0,0,0,0,0,0,0 
  159. 1840  DATA  0,0,0,0,0,0,0,0,1,1,0,0,0,0
  160. 1850  DATA  0,0,0,0,0,0,0,1,0,0,0,0,0,0
  161. 1860  DATA  0,0,0,0,0,0,1,0,0,0,0,0,0,0
  162. 1870  DATA  0,0,0,0,0,1,0,0,1,1,1,1,0,0 
  163. 1880  DATA  1,1,1,1,1,1,1,1,1,1,1,1,0,0 
  164. 1890  DATA  0,0,1,1,1,1,0,1,1,1,1,1,0,0  
  165. 1900  DATA  0,0,0,0,0,1,0,0,0,1,1,1,0,0
  166. 1910  DATA  0,0,0,0,0,1,0,0,0,1,1,1,1,0 
  167. 1920  DATA  0,0,0,0,0,0,0,1,1,1,1,1,1,1
  168. 1930  DATA  0,0,0,0,0,0,0,0,0,0,0,0,0,0 
  169. 1940  DATA  0,0,0,0,0,0,0,0,0,0,0,0,0,0 
  170. 1950  DATA  0,0,0,0,0,0,0,0,0,0,0,0,0,0 
  171. 1960  DATA  0,0,0,0,0,0,0,0,0,0,0,0,0,0 
  172. 2010  DATA  0,0,0,0,0,0,0,0,0,0,0,0,0,0
  173. 2020  DATA  0,0,0,0,0,0,0,0,0,0,0,0,0,0 
  174. 2030  DATA  0,0,0,0,0,0,0,1,1,1,0,0,0,0
  175. 2040  DATA  1,0,0,0,0,0,0,1,1,1,0,0,0,0
  176. 2050  DATA  0,1,0,0,0,0,0,0,1,1,0,0,0,0
  177. 2060  DATA  0,0,1,0,0,0,0,0,1,1,0,0,0,0
  178. 2070  DATA  0,0,0,1,1,1,1,1,1,1,0,0,0,0 
  179. 2080  DATA  0,0,0,0,1,0,1,1,1,1,0,0,0,0 
  180. 2090  DATA  0,0,0,0,0,1,1,1,1,1,0,0,0,0 
  181. 2100  DATA  0,0,0,0,0,0,1,1,1,1,0,0,0,0
  182. 2110  DATA  0,0,0,1,1,1,1,1,1,1,0,0,0,0 
  183. 2120  DATA  0,0,1,1,1,1,1,1,1,1,0,0,0,0
  184. 2130  DATA  0,0,1,1,0,0,0,1,1,0,0,0,0,0 
  185. 2140  DATA  0,0,1,1,0,0,0,1,1,1,1,1,0,0
  186. 2150  DATA  0,0,1,1,0,0,0,1,1,1,1,1,0,0 
  187. 2160  DATA   0,0,0,0,0,0,0,0,0,0,0            ,0,0,0 
  188. 2210  DATA  1,1,1,1,1,1,1,1,1,1,1,1,1,1
  189. 2220  DATA  1,1,1,1,1,1,1,1,1,1,1,1,1,1
  190. 2230  DATA  1,1,1,1,1,1,1,1,1,1,1,1,1,1 
  191. 2240  DATA  1,1,1,1,1,1,1,1,1,1,1,1,1,1
  192. 2250  DATA  1,1,1,1,1,1,1,1,1,1,1,1,1,1
  193. 2260  DATA  1,1,1,1,1,1,1,1,1,1,1,1,1,1 
  194. 2270  DATA  1,1,1,1,1,1,1,1,1,1,1,1,1,1  
  195. 2280  DATA  1,1,1,1,1,1,1,1,1,1,1,1,1,1
  196. 2290  DATA  1,1,1,1,1,1,1,1,1,1,1,1,1,1
  197. 2300  DATA  1,1,1,1,1,1,1,1,1,1,1,1,1,1
  198. 2310  DATA  1,1,1,1,1,1,1,1,1,1,1,1,1,1
  199. 2320  DATA  1,1,1,1,1,1,1,1,1,1,1,1,1,1
  200. 2330  DATA  1,1,1,1,1,1,1,1,1,1,1,1,1,1
  201. 2340  DATA  1,1,1,1,1,1,1,1,1,1,1,1,1,1 
  202. 2350  DATA  1,1,1,1,1,1,1,1,1,1,1,1,1,1
  203. 2360  DATA  1,1,1,1,1,1,1,1,1,1,1,1,1,1 
  204. 2410  DATA  0,0,0,0,0,0,0,0,0,0,0,0,0,0
  205. 2420  DATA  0,1,1,1,1,0,0,1,1,0,0,0,0,0
  206. 2430  DATA  0,1,1,1,1,0,0,1,1,0,0,1,1,0
  207. 2440  DATA  0,1,1,0,0,0,0,1,1,0,0,1,1,0
  208. 2450  DATA  0,1,1,0,0,1,1,1,1,0,0,1,1,0
  209. 2460  DATA  0,1,1,0,0,1,1,1,1,0,0,1,1,0
  210. 2470  DATA  0,0,0,0,0,0,0,0,0,0,0,1,1,0
  211. 2480  DATA  0,0,0,0,1,1,0,0,0,1,1,1,1,0
  212. 2490  DATA  0,0,0,0,1,1,0,0,0,1,1,1,1,0
  213. 2500  DATA  0,1,1,1,1,1,0,0,0,0,0,0,0,0 
  214. 2510  DATA  0,1,1,1,1,1,0,0,0,0,1,1,1,0
  215. 2520  DATA  0,0,0,0,0,0,0,0,0,0,1,1,1,0
  216. 2530  DATA  0,0,0,0,0,0,0,0,0,0,0,1,1,0 
  217. 2540  DATA  0,1,1,1,1,0,0,1,1,0,0,1,1,0
  218. 2550  DATA  0,1,1,1,1,0,0,1,1,0,0,1,1,0 
  219. 2560  DATA  0,0,0,0,0,0,0,0,0,0,0,0,0,0
  220. 2610  DATA  0,0,0,0,0,0,0,0,0,0,0,0,0,0
  221. 2620  DATA  1,1,1,1,1,1,1,1,1,1,1,1,1,1
  222. 2630  DATA  0,0,0,0,0,0,0,0,0,0,0,0,0,0
  223. 2640  DATA  1,1,1,1,1,1,1,1,1,1,1,1,1,1 
  224. 2650  DATA  0,0,0,0,0,0,0,0,0,0,0,0,0,0
  225. 2660  DATA  1,1,1,1,1,1,1,1,1,1,1,1,1,1
  226. 2670  DATA  0,0,0,0,0,0,0,0,0,0,0,0,0,0
  227. 2680  DATA  1,1,1,1,1,1,1,1,1,1,1,1,1,1
  228. 2690  DATA  0,0,0,0,0,0,0,0,0,0,0,0,0,0
  229. 2700  DATA  1,1,1,1,1,1,1,1,1,1,1,1,1,1
  230. 2710  DATA  0,0,0,0,0,0,0,0,0,0,0,0,0,0 
  231. 2720  DATA  1,1,1,1,1,1,1,1,1,1,1,1,1,1
  232. 2730  DATA  0,0,0,0,0,0,0,0,0,0,0,0,0,0
  233. 2740  DATA  1,1,1,1,1,1,1,1,1,1,1,1,1,1
  234. 2750  DATA  0,0,0,0,0,0,0,0,0,0,0,0,0,0
  235. 2760  DATA  1,1,1,1,1,1,1,1,1,1,1,1,1,1